import axios from "axios";

class http {
  constructor() {
    // 设置基本的API URL
    this.baseURL = "http://api.example.com/";

    // 创建Axios实例
    this.axiosInstance = axios.create({
      baseURL: this.baseURL,
      timeout: 5000, // 请求超时时间
    });

    // 请求拦截器
    this.axiosInstance.interceptors.request.use(
      (config) => {
        // 在请求发送之前做一些处理
        // 比如添加认证信息、设置请求头等
        return config;
      },
      (error) => {
        // 处理请求错误
        return Promise.reject(error);
      }
    );

    // 响应拦截器
    this.axiosInstance.interceptors.response.use(
      (response) => {
        // 在响应返回之前做一些处理
        // 比如解析数据、处理错误等
        return response.data;
      },
      (error) => {
        // 处理响应错误
        return Promise.reject(error);
      }
    );
  }

  // 封装GET请求方法
  get(url, params = {}) {
    return this.axiosInstance.get(url, { params });
  }

  // 封装POST请求方法
  post(url, data = {}) {
    return this.axiosInstance.post(url, data);
  }

  // 封装PUT请求方法
  put(url, data = {}) {
    return this.axiosInstance.put(url, data);
  }

  // 封装DELETE请求方法
  delete(url) {
    return this.axiosInstance.delete(url);
  }
}

export default new http();
